import { defineConfig } from 'vite'
import { createVuePlugin } from 'vite-plugin-vue2'
import path from 'path'
import { viteObfuscateFile } from 'vite-plugin-obfuscator'

export default defineConfig({
  plugins: [
    createVuePlugin(),
    viteObfuscateFile({
      // 混淆选项配置
      options: {
        compact: true,                           // 压缩代码
        controlFlowFlattening: true,             // 控制流扁平化
        controlFlowFlatteningThreshold: 0.75,    // 控制流扁平化阈值
        numbersToExpressions: true,              // 数字表达式
        simplify: true,                          // 简化代码
        stringArrayShuffle: true,                // 字符串数组打乱
        splitStrings: true,                      // 字符串分割
        stringArrayThreshold: 0.75               // 字符串数组阈值
      }
    })
  ],
  css: {
    preprocessorOptions: {
      less: {
        javascriptEnabled: true,  // 必须开启
        modifyVars: {            // 可选的全局变量
          // 'primary-color': '#1890ff',  // Element UI 主题色
          // 'border-color-base': '#d9d9d9'
        }
      }
    }
  },
  resolve: {
    alias: {
      'vue-ueditor-wrap': path.resolve(__dirname, 'node_modules/vue-ueditor-wrap')
    }
  },
  build: {
    minify: 'terser',
    terserOptions: {
      compress: {
        drop_console: true,  // 移除console
        drop_debugger: true  // 移除debugger
      },
      format: {
        comments: false  // 移除注释
      }
    },
    rollupOptions: {
      output: {
        manualChunks: {
          'element-ui': ['element-ui'],
          'echarts': ['echarts'],
          'avue': ['@smallwei/avue'],
          'vendor': ['vue', 'vue-router', 'vuex']
        }
      }
    }
  }
})
